library(tidyverse)
library(sjlabelled)
gp_covid <-
read_csv2("./data/ZA5667_v1-1-0.csv") %>%
set_na(na = c(-99, -77, -33, 98))
across() to dichotomize the trust variables hzcy044a:hzcy052a. The value 1 should remain, all others should be 0.
mutate() function and then use recode().
gp_covid <-
gp_covid %>%
mutate(
across(
hzcy044a:hzcy052a,
~recode(
.x,
`5` = 0,
`4` = 0,
`2` = 0,
`1` = 1
)
)
)
There are several ways of doing that.
table() function.select() to select only the manipulated columns and print the whole data frame using View(), glimpse() or the plain console output.table(gp_covid$hzcy044a)
##
## 0 1 3
## 2693 43 329
table(gp_covid$hzcy047a)
##
## 0 1 3
## 2878 29 188
table(gp_covid$hzcy052a)
##
## 0 1 3
## 2779 25 303
gp_covid %>%
select(hzcy044a:hzcy052a) %>%
glimpse()
## Rows: 3,765
## Columns: 9
## $ hzcy044a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 3, 0, NA, 0, 3, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, 0, 0, 0, 3,~
## $ hzcy045a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 3, NA, 3, 3, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, NA, NA, 3, 0, NA, NA, 0, NA, 0, NA, 0, NA~
## $ hzcy046a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 0, 0, NA, 3, 0, 0, NA, 3, 3, NA, NA, 0, NA, 0, NA, 3, 0, NA, 0, 0, 3, 3, 0, NA, NA, 3, NA, 0, 0, 3, 3, 3,~
## $ hzcy047a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 3, NA, 0, 0, 0, 0, 3, ~
## $ hzcy048a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 3, 0, NA, 3, 0, 1, NA, 0, 0, NA, NA, 0, NA, 0, NA, 3, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 3, 3, 0, 0, 3, ~
## $ hzcy049a [3m[38;5;246m<dbl>[39m[23m NA, 0, 3, 0, NA, 0, 3, 0, NA, 0, 1, 0, NA, 0, 0, NA, NA, 0, NA, NA, NA, 3, 0, 0, 0, 0, 0, 0, 3, NA, NA, 0, NA, 1, 3, 0, 0, 3,~
## $ hzcy050a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 3, 0, NA, 0, 0, 1, NA, 0, 0, NA, NA, 0, NA, 0, NA, 3, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, 3, 0, 0, 3, ~
## $ hzcy051a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 3, 0, 0, NA, 0, 0, 3, NA, 0, 0, NA, NA, 0, NA, 3, NA, 0, 0, 0, 0, 0, 0, 3, 0, NA, NA, 3, NA, 0, 3, 0, 0, 3, ~
## $ hzcy052a [3m[38;5;246m<dbl>[39m[23m NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 3, 3, 0, NA, NA, 0, NA, 0, 0, 0, 0, 0, ~
median() function to calculate an aggregated variable of all trust variables for all observations in the data.
rowwise() on your data and calculate the values, amongst others, applying the c_across() function. Oh, and don’t forget to finally use ungroup.
gp_covid <-
gp_covid %>%
rowwise() %>% #<<
mutate(
median_trust =
median(
c_across(hzcy044a:hzcy052a),
na.rm = TRUE
)
) %>%
ungroup()
table(gp_covid$median_trust)
##
## 0 0.5 1 1.5 2 3
## 2795 9 102 17 2 235